﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PSE.AuditLogging.LogEntry;

namespace PSE.AuditLogging.Repository
{
    public interface IContingencyRepository : IDisposable
    {
        /// <summary>
        /// Envia uma entrada de log para o repositório de contigência
        /// </summary>
        /// <param name="entryPackage"></param>
        void Send(LogEntryPackage entryPackage);

        /// <summary>
        /// Ler uma entrada de log do repositório de contigência
        /// </summary>
        /// <returns></returns>
        LogEntryPackage Peek();

        /// <summary>
        /// Receber uma entrada de log do repositório de contigência
        /// </summary>
        /// <returns></returns>
        LogEntryPackage Receive();

        /// <summary>
        /// Remover uma entrada de log do repositório de contigência
        /// </summary>
        void RemoveTop();
    }
}
